﻿// ***********************************************************************
// Assembly         : YERIL_PI_INT
// Author           : Diego Bonilla
// Created          : 03-02-2014
//
// Last Modified By : Diego Bonilla
// Last Modified On : 03-02-2014
// ***********************************************************************
// <copyright file="GridCliente.aspx.cs" company="Development Solutions CR">
//     Copyright (c) Development Solutions CR. All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

/// <summary>
/// The Login namespace.
/// </summary>
namespace YERIL_PI_INT.PaginasWebs.Modulos.Login
{
    /// <summary>
    /// Class GridCliente1.
    /// </summary>
    public partial class GridCliente1 : System.Web.UI.Page
    {
        /// <summary>
        /// The mensaje
        /// </summary>
        public string mensaje = "";
        /// <summary>
        /// The seleccion
        /// </summary>
        public string seleccion = "";
        /// <summary>
        /// The codigo
        /// </summary>
        static int codigo = 0;
        /// <summary>
        /// The usu_puesto
        /// </summary>
        public static int usu_puesto = 0;
        /// <summary>
        /// The usu_codusuario
        /// </summary>
        public static int usu_codusuario = 0;
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (Request.QueryString["codigo_usuario"] != null && Request.QueryString["puesto"] != null)
                {
                    usu_codusuario = Convert.ToInt32(Request.QueryString["codigo_usuario"]);
                    usu_puesto = Convert.ToInt32(Request.QueryString["puesto"]);
                }

                if (!IsPostBack)
                {
                    codigo = 0;
                  
                    btnShowAgregar.Visible = false;
                    btnShowEditar.Visible = false;
                    btnShowEliminar.Visible = false;
                    lectura_permisos();
                }


            }
            catch (Exception exc)
            {

                mensaje = exc.Message;
            }
        }
        private List<WSGestion.MOD_Puesto_Permiso> listaPermisos()
        {

            WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
            wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
            List<WSGestion.MOD_Puesto_Permiso> listaPermisos = wsgest.SEL_Puesto_Permiso_By_ID(usu_puesto).ToList();
            return listaPermisos;

        }

        private void lectura_permisos()
        {
            for (int i = 0; i < listaPermisos().Count; i++)
            {
                if (listaPermisos()[i].PUEPER_nombre_modulo == "Catalogos")
                {
                    if (listaPermisos()[i].PUEPER_nombre_permiso == "Agregar Valor")
                    {
                        btnShowAgregar.Visible = true;
                    }
                    if (listaPermisos()[i].PUEPER_nombre_permiso == "Eliminar Valor")
                    {
                        btnShowEliminar.Visible = true;
                    }
                    if (listaPermisos()[i].PUEPER_nombre_permiso == "Editar Valor")
                    {
                        btnShowEditar.Visible = true;
                    }
                    if (listaPermisos()[i].PUEPER_nombre_permiso == "Ver Valor")
                    {
                        CargarGrid();
                    }

                }

            }
        }
        /// <summary>
        /// Handles the Click event of the ImageButton1 control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ImageClickEventArgs"/> instance containing the event data.</param>
        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            Session["FormAccion"] = "Agregar";
            Response.Redirect("Cliente.aspx");

        }
        /// <summary>
        /// Cargars the grid.
        /// </summary>
        public void CargarGrid()
        {

            DataTable dt = new DataTable();
            dt.Columns.Add("Código Cliente", Type.GetType("System.String"));
            dt.Columns.Add("Nombre Compañia", Type.GetType("System.String"));
            dt.Columns.Add("Teléfono", Type.GetType("System.String"));
            dt.Columns.Add("Tipo Cliente", Type.GetType("System.String"));
            dt.Columns.Add("Estado", Type.GetType("System.String"));
            int cont = dt.Columns.Count;
            for (int i = 0; i < listaClientes().Count; i++)
            {
                dt.Rows.Add();
                dt.Rows[dt.Rows.Count - 1]["Código Cliente"] = listaClientes()[i].CLI_codcliente;
                dt.Rows[dt.Rows.Count - 1]["Nombre Compañia"] = listaClientes()[i].CLI_nombre;
                dt.Rows[dt.Rows.Count - 1]["Teléfono"] = listaClientes()[i].CLI_telefono;
                dt.Rows[dt.Rows.Count - 1]["Tipo Cliente"] = listaClientes()[i].CLI_nombretipocliente;
                dt.Rows[dt.Rows.Count - 1]["Estado"] = listaClientes()[i].CLI_estadonombre;
            }

            gvCliente.DataSource = dt;
            gvCliente.DataBind();


        }
        /// <summary>
        /// Listas the clientes.
        /// </summary>
        /// <returns>List{WSGestion.MOD_Clientes}.</returns>
        private List<WSGestion.MOD_Clientes> listaClientes()
        {

            WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
            wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
            List<WSGestion.MOD_Clientes> ListaClientes = wsgest.SEL_GRID_CLIENTES().ToList();
            return ListaClientes;

        }



        /// <summary>
        /// Handles the SelectedIndexChanged1 event of the gvCliente control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void gvCliente_SelectedIndexChanged1(object sender, EventArgs e)
        {
            seleccion = gvCliente.SelectedRow.Cells[2].Text;
            codigo = Convert.ToInt32(gvCliente.SelectedRow.Cells[1].Text);
            mensaje = "Se ha seleccionado el cliente: " + seleccion;
        }

        /// <summary>
        /// Handles the Click event of the btnShowEditar control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ImageClickEventArgs"/> instance containing the event data.</param>
        protected void btnShowEditar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (codigo == 0)
                {
                    mensaje = "No se ha seleccionado un Cliente";
                }
                else
                {

                    Session["Codigo"] = codigo;
                    Session["FormAccion"] = "Editar";
                    Response.Redirect("Cliente.aspx");
                }



            }
            catch (Exception exc)
            {

                mensaje = exc.Message.ToString();
            }
        }

        /// <summary>
        /// Handles the Click event of the btnShowEliminar control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ImageClickEventArgs"/> instance containing the event data.</param>
        protected void btnShowEliminar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (codigo == 0)
                {
                    mensaje = "No se ha seleccionado un Cliente";
                }
                else
                {
                    WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                    wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                    wsgest.DEL_Cliente(codigo);
                    CargarGrid();
                }
            }
            catch (Exception exc)
            {

                mensaje = exc.Message.ToString();
            }

        }

    }
}